--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / Sideband.git / files / sbapp / kivymd / tools / patterns / MVC / Model / database_restdb.py
Displaying Raw • Download
sbapp/kivymd/tools/patterns/MVC/Model/database_restdb.py 0.2.2 (399da923) Text, 3.87 KB
T8b949e"""
Restdb.io API Wrapper
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This package is an API Wrapper for the website `restdb.io <https://restdb.io>`_,
which allows for online databases.
"""
Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations
Tff7b72import T7ee787json
Tff7b72import T7ee787os
Tff7b72import T7ee787socket
Tff7b72import T7ee787requests
Tff7b72def Td2a8ffget_connectTb4b4b4(Te6edf3funcTb4b4b4, Te6edf3hostTff7b72=Ta5d6ff"Ta5d6ff8.8.8.8Ta5d6ff"Tb4b4b4, Te6edf3portTff7b72=T79c0ff53Tb4b4b4, Te6edf3timeoutTff7b72=T79c0ff3Tb4b4b4)Tb4b4b4:
T8b949e"""Checks for an active Internet connection."""
Tff7b72def Td2a8ffwrappedTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3socketTff7b72.Td2a8ffsetdefaulttimeoutTb4b4b4(Te6edf3timeoutTb4b4b4)
Te6edf3socketTff7b72.Td2a8ffsocketTb4b4b4(Te6edf3socketTff7b72.Td2a8ffAF_INETTb4b4b4, Te6edf3socketTff7b72.Td2a8ffSOCK_STREAMTb4b4b4)Tff7b72.Td2a8ffconnectTb4b4b4(
Tb4b4b4(Te6edf3hostTb4b4b4, Te6edf3portTb4b4b4)
Tb4b4b4)
Tff7b72return Te6edf3funcTb4b4b4(Tff7b72*Te6edf3argsTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72return Tff7b72False
Tff7b72return Te6edf3wrapped
Tff7b72class T56d364DataBaseTb4b4b4:
Te6edf3name Tff7b72= Ta5d6ff"Ta5d6ffRestDBTa5d6ff"
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3database_url Tff7b72= Ta5d6ff"Ta5d6ffhttps://restdbio-5498.restdb.ioTa5d6ff"
Te6edf3api_key Tff7b72= Ta5d6ff"Ta5d6ff7ce258d66f919d3a891d1166558765f0b4dbdTa5d6ff"
Tff7b72selfTff7b72.Td2a8ffHEADERS Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6ffx-apikeyTa5d6ff"Tb4b4b4: Te6edf3api_keyTb4b4b4, Ta5d6ff"Ta5d6ffContent-TypeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffapplication/jsonTa5d6ff"Tb4b4b4}
T8b949e# Address for file collections.
Tff7b72selfTff7b72.Td2a8ffUSER_MEDIA Tff7b72= Ta5d6fffTa5d6ff"Tffd700{Te6edf3database_urlTffd700}Ta5d6ff/mediaTa5d6ff"
T8b949e# Address for users collections.
Tff7b72selfTff7b72.Td2a8ffUSER_DATA Tff7b72= Ta5d6fffTa5d6ff"Tffd700{Te6edf3database_urlTffd700}Ta5d6ff/rest/userdataTa5d6ff"
Tf0883e@get_connect
Tff7b72def Td2a8ffupload_fileTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3path_to_fileTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657dict Tff7b72| Tffa657boolTb4b4b4:
T8b949e"""
Uploads a file to the database.
You can upload a file to the database only from a paid account.
"""
Te6edf3HEADERS Tff7b72= Tff7b72selfTff7b72.Td2a8ffHEADERSTff7b72.Td2a8ffcopyTb4b4b4(Tb4b4b4)
Tff7b72del Te6edf3HEADERSTb4b4b4[Ta5d6ff"Ta5d6ffContent-TypeTa5d6ff"Tb4b4b4]
Te6edf3payload Tff7b72= Tb4b4b4{Tb4b4b4}
Te6edf3name_file Tff7b72= Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffsplitTb4b4b4(Te6edf3path_to_fileTb4b4b4)Tb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3files Tff7b72= Tb4b4b4[Tb4b4b4(Ta5d6ff"Ta5d6fffileTa5d6ff"Tb4b4b4, Tb4b4b4(Te6edf3name_fileTb4b4b4, Tffa657openTb4b4b4(Te6edf3path_to_fileTb4b4b4, Ta5d6ff"Ta5d6ffrbTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3name_fileTb4b4b4)Tb4b4b4)Tb4b4b4]
Te6edf3response Tff7b72= Te6edf3requestsTff7b72.Td2a8ffpostTb4b4b4(
Te6edf3urlTff7b72=Tff7b72selfTff7b72.Td2a8ffUSER_MEDIATb4b4b4,
Te6edf3headersTff7b72=Te6edf3HEADERSTb4b4b4,
Te6edf3dataTff7b72=Te6edf3payloadTb4b4b4,
Te6edf3filesTff7b72=Te6edf3filesTb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffstatus_code Tff7b72== T79c0ff201Tb4b4b4:
T8b949e# {
T8b949e# "msg":"OK",
T8b949e# "uploadid": "ed1bca42334f68d873161641144e57b7",
T8b949e# "ids": ["62614fb90f9df71600284aa7"],
T8b949e# }
Te6edf3json Tff7b72= Te6edf3responseTff7b72.Td2a8ffjsonTb4b4b4(Tb4b4b4)
Tff7b72if Ta5d6ff"Ta5d6ffmsgTa5d6ff" Tff7b72in Te6edf3json Tff7b72and Te6edf3jsonTb4b4b4[Ta5d6ff"Ta5d6ffmsgTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffOKTa5d6ff"Tb4b4b4:
Tff7b72return Te6edf3json
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72False
Tf0883e@get_connect
Tff7b72def Td2a8ffget_data_from_collectionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3collection_addressTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657bool Tff7b72| Tffa657listTb4b4b4:
T8b949e"""Returns data of the selected collection from the database."""
Te6edf3response Tff7b72= Te6edf3requestsTff7b72.Td2a8ffgetTb4b4b4(Te6edf3urlTff7b72=Te6edf3collection_addressTb4b4b4, Te6edf3headersTff7b72=Tff7b72selfTff7b72.Td2a8ffHEADERSTb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffstatus_code Tff7b72!= T79c0ff200Tb4b4b4:
Tff7b72return Tff7b72False
Tff7b72elseTb4b4b4:
Tff7b72return Te6edf3responseTff7b72.Td2a8ffjsonTb4b4b4(Tb4b4b4)
Tf0883e@get_connect
Tff7b72def Td2a8ffdelete_doc_from_collectionTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3collection_addressTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
T8b949e"""
Delete data of the selected collection from the database.
:param collection_address: "database_url/id_collection".
"""
Te6edf3response Tff7b72= Te6edf3requestsTff7b72.Td2a8ffdeleteTb4b4b4(Te6edf3collection_addressTb4b4b4, Te6edf3headersTff7b72=Tff7b72selfTff7b72.Td2a8ffHEADERSTb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffstatus_code Tff7b72== T79c0ff200Tb4b4b4:
Tff7b72return Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72False
Tf0883e@get_connect
Tff7b72def Td2a8ffadd_doc_to_collectionTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3dataTb4b4b4: Tffa657dictTb4b4b4, Te6edf3collection_addressTb4b4b4: Tffa657str
Tb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
T8b949e"""Add collection to the database."""
Te6edf3response Tff7b72= Te6edf3requestsTff7b72.Td2a8ffpostTb4b4b4(
Te6edf3urlTff7b72=Te6edf3collection_addressTb4b4b4,
Te6edf3dataTff7b72=Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4,
Te6edf3headersTff7b72=Tff7b72selfTff7b72.Td2a8ffHEADERSTb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffstatus_code Tff7b72== T79c0ff201Tb4b4b4:
Tff7b72if Ta5d6ff"Ta5d6ff_idTa5d6ff" Tff7b72in Te6edf3responseTff7b72.Td2a8ffjsonTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3responseTff7b72.Td2a8ffjsonTb4b4b4(Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72False
Tf0883e@get_connect
Tff7b72def Td2a8ffedit_dataTb4b4b4(
Tff7b72selfTb4b4b4, Te6edf3collectionTb4b4b4: Tffa657dictTb4b4b4, Te6edf3collection_addressTb4b4b4: Tffa657strTb4b4b4, Te6edf3collection_idTb4b4b4: Tffa657str
Tb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
T8b949e"""Modifies data in a collection of data in a database."""
Te6edf3response Tff7b72= Te6edf3requestsTff7b72.Td2a8ffputTb4b4b4(
Te6edf3urlTff7b72=Ta5d6fffTa5d6ff"Tffd700{Te6edf3collection_addressTffd700}Ta5d6ff/Tffd700{Te6edf3collection_idTffd700}Ta5d6ff"Tb4b4b4,
Te6edf3headersTff7b72=Tff7b72selfTff7b72.Td2a8ffHEADERSTb4b4b4,
Te6edf3jsonTff7b72=Te6edf3collectionTb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3responseTff7b72.Td2a8ffstatus_code Tff7b72== T79c0ff200Tb4b4b4:
Tff7b72if Ta5d6ff"Ta5d6ff_idTa5d6ff" Tff7b72in Te6edf3responseTff7b72.Td2a8ffjsonTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72True
Tff7b72elseTb4b4b4:
Tff7b72return Tff7b72False
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────